// 此文件为webpack的配置文件
// 我们约定俗成 只要是在node环境下运行的js文件 导入导出方式一般都用es5的方法
// 因为需要用到绝对路径 得引入node的path模块
const path = require('path')
// 引入webpack的插件
const HtmlWebpackPlugin = require('html-webpack-plugin')
module.exports = {
    // 1. 配置入口文件,可以写相对路径
    entry: './src/index.js',
    // 2. 配置出口文件，必须写绝对路径
    output: {
        path: path.resolve(__dirname, 'dist'),
        filename: 'mian.js'
    },
    // 3. 使用webpack的插件：
    plugins: [
        new HtmlWebpackPlugin({
            template: './public/index.html'
        })
    ],
    // 4.配置loader:
    module: {
        rules: [{
                // 4.1编写css的loader
                test: /\.css$/i,
                use: ['style-loader', 'css-loader']
            },
            {
                // 4.2编写less的loader
                test: /\.less$/i,
                use: ['style-loader', 'css-loader', 'less-loader']
            }, {
                // 4.3编写图片格式的loader
                test: /\.(png|jpg|gif|jpeg)$/i,
                type: 'asset'
            }, {
                // 4.4编写字体格式的loader
                test: /\.(woff|svg|eot|ttf|woff2)$/i,
                type: 'asset/resource',
                generator: {
                    // [name]:占位符变量，最终会被替换成原来的文件名
                    // [hash]:生成hash值
                    // [ext]:原先的后缀名
                    filename: 'fonts/[name].[hash][ext]'
                }
            }
        ]
    },
    // 5.选择模式：
    mode: "development",
    devServer: {
        open: true,
        port: 3000
    }
}